New architecture and new visualization capability#231
Open
Chenglong-MS wants to merge 114 commits intomainfrom
Open
New architecture and new visualization capability#231Chenglong-MS wants to merge 114 commits intomainfrom
Chenglong-MS wants to merge 114 commits intomainfrom
Conversation
Bumps [vega-selections](https://github.com/vega/vega) from 6.1.0 to 6.1.2. - [Release notes](https://github.com/vega/vega/releases) - [Commits](vega/vega@v6.1.0...v6.1.2) --- updated-dependencies: - dependency-name: vega-selections dependency-version: 6.1.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [vega-functions](https://github.com/vega/vega) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/vega/vega/releases) - [Commits](vega/vega@v6.1.0...v6.1.1) --- updated-dependencies: - dependency-name: vega-functions dependency-version: 6.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
There was a problem hiding this comment.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
…ew question actually...
Merge pull request #230 from microsoft/dev
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Add Map Chart Support with Projection Controls
- Compute bar width/height from layout step and stepPadding - Add spacing parameter to spread operation - For grouped bars, divide bar size by number of groups (matching ECharts behavior) - Ensures grouped bars are properly sized and don't overlap Co-authored-by: Cursor <cursoragent@cursor.com>
Fix GoFish bar sizing to match other backends
…unctions-6.1.1 Bump vega-functions from 6.1.0 to 6.1.1
…elections-6.1.2 Bump vega-selections from 6.1.0 to 6.1.2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Redesigned Visualization Architecture & Expanded Chart Capabilities
Summary
This PR introduces a ground-up redesign of Data Formulator's visualization engine and backend architecture, delivering a multi-backend semantic chart compiler, a tiered sandbox system for secure code execution, and cloud-native workspace storage — along with 30+ chart types across four rendering backends.
Highlights
1.
agents-chart— A New Semantic Visualization LibraryWe replaced the previous monolithic chart assembly logic with agents-chart, a standalone, pure-TypeScript visualization library built around a key insight: semantic types as the contract between AI and rendering.
Instead of asking the LLM to produce detailed, low-level chart specs (which look good but break on every user edit), or using library defaults (which are editable but look bad), agents-chart takes a third path:
Architecture:
core/vegalite/echarts/Each backend implements the same
assemble()interface: data in, native spec out. Users retain full control over aesthetic fine-tuning using each library's own API — no abstraction tax.2. Massively Expanded Chart Type Library
New chart icon assets added for area, bump, candlestick, density, lollipop, pyramid, radar, rose, streamgraph, strip plot, and waterfall charts.
3. Smarter Chart Recommendation
A new recommendation engine (
core/recommendation.ts) intelligently suggests chart types based on field semantics and adapts field assignments when switching between chart types. The UI has been split into a streamlinedSimpleChartRecBoxcomponent (~1,100 lines) plus aChartGallery(~930 lines) for browsing the full chart type catalog.4. Tiered Sandbox System
Replaced the single sandbox implementation with a three-tier execution model via an abstract
Sandboxbase class:LocalSandboxDockerSandboxNotASandboxexec()with no isolation5. Cloud-Native Workspace Storage
New Azure Blob Storage workspace backend (~670 lines) alongside the existing local filesystem workspace, selected via a factory pattern (
workspace_factory.py). Enables multi-user cloud deployments with the same API surface — tables stored as parquet, sessions as JSON, metadata as YAML.6. Security Hardening
Architecture Overview
Breaking Changes
py_sandbox.pyhas been replaced by thesandbox/package withbase.py,local_sandbox.py,docker_sandbox.py, andnot_a_sandbox.py.--sandbox-type).